package com.ztesoft.book.api.config.schedule.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ztesoft.book.common.utils.query.PageBO;
import com.ztesoft.book.core.quartz.schedulejob.dto.ScheduleJobDTO;

import java.util.Map;

/**
 * @Description: 定时任务
 * @Author: YangFan
 * @Date: 2021-03-19 18:10
 */
public interface ScheduleJobService extends IService<ScheduleJobDTO> {


    /**
     * 方法功能描述:
     * < 查询定时任务列表 >
     *
     * @param params 【参数 1 注释说明】
     * @return PageOB                        【返回值 注释说明】
     * @author YangFan
     * @date 2021-06-22 17:25
     */
    PageBO queryPage(Map<String, Object> params);


    /**
     * 方法功能描述:
     * < 保存定时任务 >
     *
     * @param scheduleJobDto 【参数 1 注释说明】
     * @return void                            【返回值 注释说明】
     * @author YangFan
     * @date 2021-04-15 15:31
     */
    void saveJob(ScheduleJobDTO scheduleJobDto);


    /**
     * 方法功能描述:
     * < 更新定时任务 >
     *
     * @param scheduleJobDto 【参数 1 注释说明】
     * @return void                            【返回值 注释说明】
     * @author YangFan
     * @date 2021-06-22 16:57
     */
    void update(ScheduleJobDTO scheduleJobDto);


    /**
     * 方法功能描述:
     * < 批量删除定时任务 >
     *
     * @param jobIds 【参数 1 注释说明】
     * @return void                            【返回值 注释说明】
     * @author YangFan
     * @date 2021-04-15 15:31
     */
    void deleteBatch(String[] jobIds);


    /**
     * 方法功能描述:
     * < 批量更新定时任务状态 >
     *
     * @param jobIds 【参数 1 注释说明】
     * @param status 【参数 2 注释说明】
     * @return int                            【返回值 注释说明】
     * @author YangFan
     * @date 2021-04-15 15:31
     */
    int updateBatch(String[] jobIds, int status);


    /**
     * 方法功能描述:
     * < 立即执行 >
     *
     * @param jobIds 【参数 1 注释说明】
     * @return void                            【返回值 注释说明】
     * @author YangFan
     * @date 2021-04-15 15:32
     */
    void run(String[] jobIds);


    /**
     * 方法功能描述:
     * < 暂停运行 >
     *
     * @param jobIds 【参数 1 注释说明】
     * @return void                            【返回值 注释说明】
     * @author YangFan
     * @date 2021-04-15 15:32
     */
    void pause(String[] jobIds);


    /**
     * 方法功能描述:
     * < 恢复运行 >
     *
     * @param jobIds 【参数 1 注释说明】
     * @return void                            【返回值 注释说明】
     * @author YangFan
     * @date 2021-04-15 15:32
     */
    void resume(String[] jobIds);
}
